package es_service

import (
	"context"
	"gin-swagger-demo/pkg/es"
	"github.com/olivere/elastic/v7"
)

// 定义一些变量，mapping为定制的index字段类型
const mapping = `
  {
  	"settings":{
  		"number_of_shards": 1,
  		"number_of_replicas": 0
  	},
  	"mappings":{
  		"properties":{
  			"name":{
  				"type":"text"
  			},
  			"icon":{
  				"type":"text"
  			},
  			"age":{
  				"type":"long"
  			},
  			"id":{
  				"type":"text"
  			}
  		}
  	}
  }`

func CreateIndex(ctx context.Context, index string)  error {
	return es.CreateIndex(ctx,index,mapping)
}

func DeleteIndex(ctx context.Context, index string) error {
	return es.DeleteIndex(ctx,index)
}

// Create 创建单个文档
func Create(ctx context.Context, index, data string) error {
	return es.Create(ctx,index,data)
}

// Delete 通过 ID 删除文档
func Delete(ctx context.Context, index, id string) error {
	return es.Create(ctx,index,id)
}

// GetByQuery 搜索
func GetByQuery(ctx context.Context, index string, query elastic.Query) ([]string, error) {
	return es.GetByQueryAll(ctx,index,query)
}

// GetByQuery 分页搜索
func GetByQueryPage(ctx context.Context, index string, query elastic.Query,page, size int) ([]string, error) {
	return es.GetByQueryPage(ctx,index,query,page,size)
}